package 课上练习0420_scala_method$$class

import scala.beans.BeanProperty

/**
 * 类的成员变量和api
 */
object Scala_03Class {
  val p = new Point
  p.x
  p.y
  p.name
  p.setName("")
}

/**
 * 自己手动创建变量的getter和setter方法需要遵循以下原则：
 * 0）将成员变量定义为私有
 * 1）字段属性名以“_”作为前缀，如_x
 * 2）getter方法定义为：def x = _x
 * 3）setter方法定义式，发发明为属性名去掉前缀，后缀是"x_="
 */
class Point {
  private var _x = 0
  private var _y = 0

  // 这个属性生成了4个方法，java的get/set方法和scala的get/set方法
  @BeanProperty var name = "bing"

  def x = _x
  def x_= (newValue: Int) = { _x = newValue }

  def y = _y
  def y_= (newValue: Int) = { _y = newValue }
}
